Stepping motors are compact, direct drive motors which are capable of providing high torque with a high degree of accuracy. That is, such motors are characterized by gear ratios in the neighborhood of 200:1 and can be incrementally stepped utilizing digital circuitry. For these and other reasons, stepping motors have been found to be especially suitable for use in automotive dashboard actuators such as speedometers, tachometers, and the like.
A two phase stepping motor may described as comprising at least first and second coils (i.e. coil A and coil B) perpendicularly oriented with respect to each other which are alternately driven with currents of opposite polarities. For example, coil A is driven by a current of a first polarity, followed by coil B being driven by a current of the same polarity. Next coil A is driven by a current with a second opposite polarity followed by driving coil B with a current of the same opposite polarity, and so on. A magnetic ring attached to the motor's rotor is configured to have a plurality of pairs of poles (e.g. five pairs of north and south poles) that are individually and selectively attracted by the magnetic fields created by driving coils A and B as described above. In the case of a speedometer or tachometer, the driving current is related to the physical speed of the vehicle (e.g. miles per hour (mph)) or the revolutions-per-minute (rpm) of the engine, as the case may be, which may, in turn, be reflected on a gauge by a needle or pointer attached to the rotor of the stepping motor.
Unfortunately, a difficulty is encountered when stepping motors are unitized in open-loop applications of the type described above. Due to the lack of feedback, there is no way to determine if a motor has driven the needle or pointer to the correct position and no way to correct the reading if a step or steps have been lost. Furthermore, when power is removed from the stepping motor, the pointer remains in the position it occupied at the time power was turned off thus destroying the relationship between the variable being measured and displayed (e.g. mph, rpm) and the actual position of the pointer. Thus, it has been found necessary to initialize or synchronize the stepping motor with the position of the needle being driven thereby each time power is applied to the system as, for example, when the ignition is first turned on or when the system is recovering from a failure such as an over-voltage condition, an inadvertent power interruption, or the like. This establishes a predetermined and desired relationship between the stepping motor/needle assembly and the physical parameters being displayed.
One technique for accomplishing the above described initialization or calibration involves the detection of the motor's stall condition; i.e. the condition of the stepping motor when the needle attached to its rotor is accurately positioned at the zero-point of the gauge (e.g. zero mph, zero rpm, etc.) or any other desired known position. In the past, one approach involved driving the motor's needle assembly counter-clockwise for an amount of time sufficient to move the needle from the farthest clockwise position capable of being reached by the needle to a point at which it strikes an obstacle such as a mechanical stop or peg located at a position on the gauge or within the stepping motor corresponding to zero. This might take as long as two seconds and could result in slamming the needle into the mechanical stop or peg causing it to bounce possibly distracting the driver.
It was latter recognized that a stepping motor's stall condition can be detected by monitoring the electro-motive-force (emf) developed in the stepping motor's coils (A and B) resulting from changes in flux therein due to the rotor's motion. That is, when the motor is stopped (as for example when it strikes the mechanical stop or peg) its rotor can no longer step or turn, and no emf voltage is generated. Thus, a technique was developed wherein the voltage created by the above described back emf is monitored by comparing it with a threshold voltage. If the threshold voltage is not exceeded, the stepping motor is assumed to be in its stalled position. For a further discussion of this approach, the interested reader is directed to U.S. Pat. No. 5,032,781 issued on Jul. 16, 1991 to Kronenberg and entitled “METHOD AND CIRCUIT FOR OPERATING A STEPPING MOTOR” and U.S. Pat. No. 5,287,050 issued on Feb. 15, 1994 to Kronenberg et al. and entitled “METHOD OF SYNCRONIZATION FOR AN INDICATION INSTRUMENT WITH ELECTROMAGNETICALLY CONTROLLED STEPPING MOTOR.”
While the above described approach is generally acceptable when a stepping motor is operating in a high-speed mode, it presents certain difficulties for low-speed applications. In a high-speed mode, the rotor is continually turning, and the magnetic flux in the non-driven coil or phase will change fairly smoothly. This results in the generation of a relatively smooth back emf voltage level. Due to the high speed, the lag between the rotor and the drive signal is slight; i.e. the rotor doesn't quite reach the magnetized pole before the drive signal changes. The magnetic flux will increase for a very short time after the pole is deenergized and then will decrease to substantially zero. This decrease results in the generation of a relatively steady voltage, the magnitude of which depends on the supply voltage and motor velocity; typically in the nature of a few hundred millivolts. Thus, a high-speed zero-point detection or reset merely involves determining if this voltage exceeds the predetermined threshold. However, in a low-speed mode, the back emf is not unidirectional but oscillates. Furthermore, the characteristics of the back emf can vary with the inertia of the rotor and the size of the load (e.g. mass of the needle) being driven by the motor. A heavy load could result in slower rotor movement and lower back emf voltages. Thus, merely comparing this voltage to a predetermined threshold could result in inaccurate zero-point or reset detection and calibration.
In view of the forgoing, it should be appreciated that it would desirable to provide a method and apparatus for detecting a stall condition in a stepping motor which is dependent only on motor design and is independent of the load being driven by the motor.